package pe.com.tma.model;

import java.io.Serializable;

import java.sql.Timestamp;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@NamedQueries({
  @NamedQuery(name = "Poliza.findAll", query = "select o from Poliza o")
})
@Table(name = "\"poliza\"")
public class Poliza implements Serializable {
    @Column(name="MontoTotal")
    private Number montoTotal;
    @Column(name="broker")
    private Number broker;
    @Column(name="bvl")
    private Number bvl;
    @Column(name="cantidad")
    private Integer cantidad;
    @Column(name="cavali")
    private Number cavali;
    @Column(name="codIntermediario")
    private Number codIntermediario;
    @Column(name="codMoneda")
    private Integer codMoneda;
    @Column(name="conasev")
    private Number conasev;
    @Column(name="esDayTrade")
    private String esDayTrade;
    @Column(name="fecLiqFL1")
    private Timestamp fecLiqFL1;
    @Column(name="fecLiqFL2")
    private Timestamp fecLiqFL2;
    @Column(name="fecha")
    private Timestamp fecha;
    @Column(name="fondo")
    private Number fondo;
    @Column(name="fondoCavali")
    private Number fondoCavali;
    @Id
    @Column(name="idPoliza", nullable = false)
    private Integer idPoliza;
    @Column(name="igv")
    private Number igv;
    @Column(name="numPolizaBVL")
    private Integer numPolizaBVL;
    @Column(name="precioUnitario")
    private Number precioUnitario;
    @Column(name="subTotal")
    private Number subTotal;
    @Column(name="tipoCambio")
    private Number tipoCambio;
    @Column(name="tipoOperacion")
    private Integer tipoOperacion;
//    @OneToMany(mappedBy = "poliza")
//    private List<OrdenVsPoliza> ordenVsPolizaList;
    @ManyToOne
    @JoinColumn(name = "idInstrumento")
    private Instrumento instrumento;
    @ManyToOne
    @JoinColumn(name = "idCliente")
    private Usuario usuario;

    public Poliza() {
    }

    public Poliza(Number broker, Number bvl, Integer cantidad, Number cavali,
                  Number codIntermediario, Integer codMoneda, Number conasev,
                  String esDayTrade, Timestamp fecLiqFL1, Timestamp fecLiqFL2,
                  Timestamp fecha, Number fondo, Number fondoCavali,
                  Usuario usuario, Instrumento instrumento, Integer idPoliza,
                  Number igv, Number montoTotal, Integer numPolizaBVL,
                  Number precioUnitario, Number subTotal, Number tipoCambio,
                  Integer tipoOperacion) {
        this.broker = broker;
        this.bvl = bvl;
        this.cantidad = cantidad;
        this.cavali = cavali;
        this.codIntermediario = codIntermediario;
        this.codMoneda = codMoneda;
        this.conasev = conasev;
        this.esDayTrade = esDayTrade;
        this.fecLiqFL1 = fecLiqFL1;
        this.fecLiqFL2 = fecLiqFL2;
        this.fecha = fecha;
        this.fondo = fondo;
        this.fondoCavali = fondoCavali;
        this.usuario = usuario;
        this.instrumento = instrumento;
        this.idPoliza = idPoliza;
        this.igv = igv;
        this.montoTotal = montoTotal;
        this.numPolizaBVL = numPolizaBVL;
        this.precioUnitario = precioUnitario;
        this.subTotal = subTotal;
        this.tipoCambio = tipoCambio;
        this.tipoOperacion = tipoOperacion;
    }

    public Number getMontoTotal() {
        return montoTotal;
    }

    public void setMontoTotal(Number montoTotal) {
        this.montoTotal = montoTotal;
    }

    public Number getBroker() {
        return broker;
    }

    public void setBroker(Number broker) {
        this.broker = broker;
    }

    public Number getBvl() {
        return bvl;
    }

    public void setBvl(Number bvl) {
        this.bvl = bvl;
    }

    public Integer getCantidad() {
        return cantidad;
    }

    public void setCantidad(Integer cantidad) {
        this.cantidad = cantidad;
    }

    public Number getCavali() {
        return cavali;
    }

    public void setCavali(Number cavali) {
        this.cavali = cavali;
    }

    public Number getCodIntermediario() {
        return codIntermediario;
    }

    public void setCodIntermediario(Number codIntermediario) {
        this.codIntermediario = codIntermediario;
    }

    public Integer getCodMoneda() {
        return codMoneda;
    }

    public void setCodMoneda(Integer codMoneda) {
        this.codMoneda = codMoneda;
    }

    public Number getConasev() {
        return conasev;
    }

    public void setConasev(Number conasev) {
        this.conasev = conasev;
    }

    public String getEsDayTrade() {
        return esDayTrade;
    }

    public void setEsDayTrade(String esDayTrade) {
        this.esDayTrade = esDayTrade;
    }

    public Timestamp getFecLiqFL1() {
        return fecLiqFL1;
    }

    public void setFecLiqFL1(Timestamp fecLiqFL1) {
        this.fecLiqFL1 = fecLiqFL1;
    }

    public Timestamp getFecLiqFL2() {
        return fecLiqFL2;
    }

    public void setFecLiqFL2(Timestamp fecLiqFL2) {
        this.fecLiqFL2 = fecLiqFL2;
    }

    public Timestamp getFecha() {
        return fecha;
    }

    public void setFecha(Timestamp fecha) {
        this.fecha = fecha;
    }

    public Number getFondo() {
        return fondo;
    }

    public void setFondo(Number fondo) {
        this.fondo = fondo;
    }

    public Number getFondoCavali() {
        return fondoCavali;
    }

    public void setFondoCavali(Number fondoCavali) {
        this.fondoCavali = fondoCavali;
    }


    public Integer getIdPoliza() {
        return idPoliza;
    }

    public void setIdPoliza(Integer idPoliza) {
        this.idPoliza = idPoliza;
    }

    public Number getIgv() {
        return igv;
    }

    public void setIgv(Number igv) {
        this.igv = igv;
    }

    public Integer getNumPolizaBVL() {
        return numPolizaBVL;
    }

    public void setNumPolizaBVL(Integer numPolizaBVL) {
        this.numPolizaBVL = numPolizaBVL;
    }

    public Number getPrecioUnitario() {
        return precioUnitario;
    }

    public void setPrecioUnitario(Number precioUnitario) {
        this.precioUnitario = precioUnitario;
    }

    public Number getSubTotal() {
        return subTotal;
    }

    public void setSubTotal(Number subTotal) {
        this.subTotal = subTotal;
    }

    public Number getTipoCambio() {
        return tipoCambio;
    }

    public void setTipoCambio(Number tipoCambio) {
        this.tipoCambio = tipoCambio;
    }

    public Integer getTipoOperacion() {
        return tipoOperacion;
    }

    public void setTipoOperacion(Integer tipoOperacion) {
        this.tipoOperacion = tipoOperacion;
    }

//    public List<OrdenVsPoliza> getOrdenVsPolizaList() {
//        return ordenVsPolizaList;
//    }
//
//    public void setOrdenVsPolizaList(List<OrdenVsPoliza> ordenVsPolizaList) {
//        this.ordenVsPolizaList = ordenVsPolizaList;
//    }
//
//    public OrdenVsPoliza addOrdenVsPoliza(OrdenVsPoliza ordenVsPoliza) {
//        getOrdenVsPolizaList().add(ordenVsPoliza);
//        ordenVsPoliza.setPoliza(this);
//        return ordenVsPoliza;
//    }
//
//    public OrdenVsPoliza removeOrdenVsPoliza(OrdenVsPoliza ordenVsPoliza) {
//        getOrdenVsPolizaList().remove(ordenVsPoliza);
//        ordenVsPoliza.setPoliza(null);
//        return ordenVsPoliza;
//    }

    public Instrumento getInstrumento() {
        return instrumento;
    }

    public void setInstrumento(Instrumento instrumento) {
        this.instrumento = instrumento;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
}
